"""
* @描述: 定义数据模型并初始化数据库
* @File: models.py
* ======★★★
* @作者: 星队
* ======★★★
* @创建时间: 2025-05-14 09:45
"""

from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()       # 实例化的数据库

# 柱状图表
class Bar(db.Model):
    __tablename__ = "bar"
    id = db.Column(db.Integer, primary_key=True)        # 主键
    name = db.Column(db.String(64), nullable=False)     # 名称
    counts = db.Column(db.Integer)                      # 数量

# 柱状图表
class Line(db.Model):
    __tablename__ = "line"
    id = db.Column(db.Integer, primary_key=True)        # 主键
    name = db.Column(db.String(64), nullable=False)     # 名称
    counts = db.Column(db.Integer)                      # 数量

# 饼图
class Pie(db.Model):
    __tablename__ = "pie"
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), nullable=False)   # 来源名称
    value = db.Column(db.Integer)                     # 访问量


def init_db(app):
    """初始化数据库"""
    app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:123456@localhost:3306/demo'
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False     # 消除警示信息
    db.init_app(app)

    with app.app_context():
        db.create_all()  # 创建所有表
        # db.drop_all()  # 删除数据库（慎用）


#=============== 测试是否成功，运行后必须注释掉 ===============#
# from flask import Flask
# app = Flask(__name__)
# init_db(app)
# =============== 测试是否成功，运行后必须注释掉 ===============#